From acfe10b71c260718f72445cd984327c1d96063ab Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Mon, 7 Jan 2013 23:00:55 +0100 Subject: [PATCH] Introduce `apropos-user-option' and update `apropos-variable'. (Bug#13276) --- doc/emacs/ChangeLog | 5 +++++ doc/emacs/help.texi | 9 +++++++-- lisp/ChangeLog | 15 +++++++++++++++ lisp/apropos.el | 40 +++++++++++++++++++++++++++++++++++----- lisp/menu-bar.el | 4 ++-- 5 files changed, 64 insertions(+), 9 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 601949af88e..1b5bdc8fb53 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,8 @@ +2013-01-07 Bastien Guerry + + * help.texi (Apropos): Document `apropos-user-option' and update + the doc for `apropos-variable'. + 2013-01-05 Glenn Morris * text.texi (HTML Mode): Remove deleted nxml C-RET binding. diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 0a0a3865d2d..75b250d0f40 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -295,11 +295,16 @@ search for noninteractive functions too. Search for functions and variables. Both interactive functions (commands) and noninteractive functions can be found by this. -@item M-x apropos-variable -@findex apropos-variable +@item M-x apropos-user-option +@findex apropos-user-option Search for user-customizable variables. With a prefix argument, search for non-customizable variables too. +@item M-x apropos-variable +@findex apropos-variable +Search for variables. With a prefix argument, search for +customizable variables only. + @item M-x apropos-value @findex apropos-value Search for variables whose values match the specified pattern. With a diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ac7401aba56..185bf74bc05 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,18 @@ +2013-01-07 Bastien Guerry + + * menu-bar.el (menu-bar-search-documentation-menu): Use + `apropos-user-option' and fix the help message. + +2013-01-07 Bastien Guerry + + * apropos.el (apropos-do-all): Update docstring. + (apropos-user-option-button): New face. + (apropos-user-option): Rename from `apropos-variable' and update + docstring. + (apropos-variable): Rewrite, now show all variables by default. + (apropos-print): Mention "User option" instead of "Variable" when + printing doc for user options. (Bug#13276) + 2013-01-07 Jürgen Hötzel * net/tramp-adb.el (tramp-do-parse-file-attributes-with-ls): diff --git a/lisp/apropos.el b/lisp/apropos.el index 5f481f54e57..000d2d87d05 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el @@ -69,7 +69,7 @@ "Non nil means apropos commands will search more extensively. This may be slower. This option affects the following commands: -`apropos-variable' will search all variables, not just user variables. +`apropos-user-option' will search all variables, not just user options. `apropos-command' will also search non-interactive functions. `apropos' will search all symbols, not just functions, variables, faces, and those with property lists. @@ -115,6 +115,12 @@ include key-binding information in its output." :group 'apropos :version "24.3") +(defface apropos-user-option-button + '((t (:inherit (font-lock-variable-name-face button)))) + "Button face indicating a user option in Apropos." + :group 'apropos + :version "24.4") + (defface apropos-misc-button '((t (:inherit (font-lock-constant-face button)))) "Button face indicating a miscellaneous object type in Apropos." @@ -261,6 +267,15 @@ term, and the rest of the words are alternative terms.") 'action (lambda (button) (describe-variable (button-get button 'apropos-symbol)))) +(define-button-type 'apropos-user-option + 'apropos-label "User option" + 'apropos-short-label "o" + 'face 'apropos-user-option-button + 'help-echo "mouse-2, RET: Display more help on this user option" + 'follow-link t + 'action (lambda (button) + (describe-variable (button-get button 'apropos-symbol)))) + (define-button-type 'apropos-face 'apropos-label "Face" 'apropos-short-label "F" @@ -461,15 +476,15 @@ This requires that at least 2 keywords (unless only one was given)." This is used to decide whether to print the result's type or not.") ;;;###autoload -(defun apropos-variable (pattern &optional do-all) - "Show user variables that match PATTERN. +(defun apropos-user-option (pattern &optional do-all) + "Show user options that match PATTERN. PATTERN can be a word, a list of words (separated by spaces), or a regexp (using some regexp special characters). If it is a word, search for matches for that word as a substring. If it is a list of words, search for matches for any two (or more) of those words. With \\[universal-argument] prefix, or if `apropos-do-all' is non-nil, also show -normal variables." +variables, not just user options." (interactive (list (apropos-read-pattern (if (or current-prefix-arg apropos-do-all) "variable" "user option")) @@ -481,6 +496,17 @@ normal variables." (get symbol 'variable-documentation))) 'custom-variable-p))) +;;;###autoload +(defun apropos-variable (pattern &optional do-not-all) + "Show variables that match PATTERN. +When DO-NOT-ALL is not-nil, show user options only, i.e. behave +like `apropos-user-option'." + (interactive (list (apropos-read-pattern + (if current-prefix-arg "user option" "variable")) + current-prefix-arg)) + (let ((apropos-do-all (if do-not-all nil t))) + (apropos-user-option pattern))) + ;; For auld lang syne: ;;;###autoload (defalias 'command-apropos 'apropos-command) @@ -1099,7 +1125,11 @@ If non-nil TEXT is a string that will be printed as a heading." 'apropos-macro 'apropos-function)) (not nosubst)) - (apropos-print-doc 3 'apropos-variable (not nosubst)) + (apropos-print-doc 3 + (if (custom-variable-p symbol) + 'apropos-user-option + 'apropos-variable) + (not nosubst)) (apropos-print-doc 7 'apropos-group t) (apropos-print-doc 6 'apropos-face t) (apropos-print-doc 5 'apropos-widget t) diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 024e2237cae..60f2bc2999f 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -1637,8 +1637,8 @@ key, a click, or a menu-item")) '(menu-item "Find Options by Value..." apropos-value :help "Find variables whose values match a regexp")) (bindings--define-key menu [find-options-by-name] - '(menu-item "Find Options by Name..." apropos-variable - :help "Find variables whose names match a regexp")) + '(menu-item "Find Options by Name..." apropos-user-option + :help "Find user options whose names match a regexp")) (bindings--define-key menu [find-commands-by-name] '(menu-item "Find Commands by Name..." apropos-command :help "Find commands whose names match a regexp")) -- 2.30.2